1. Technical Field
The present invention relates in general to the field of computers, and in particular to memory devices. Still more particularly, the present invention relates to a method and system for expanding memory using a novel memory module that has connector pins on its opposite edges.
2. Description of the Related Art
Recent advances in high volume servers have introduced 64-bit processors and operating systems. These systems are capable of directly addressing vast amounts of memory. Therefore, to utilize all of this computing power, users are demanding much more memory capacity.
Some high density servers are so small that they can support only a limited number of memory sockets. For example, consider a server blade 102 shown in FIG. 1a. Server blade 102 is populated with, inter alia, a Central Processing Unit (CPU) 104, which is often a cluster of multiple processors. Data is supplied to CPU 104 by a memory controller 106, which is coupled to CPU 104 via a Northbridge chipset 105. (Consequently, data that is being sent to CPU 104 is called “northbound,” while data traveling away from CPU 104 is called “southbound.”) While CPU 104, chipset 105, and memory controller 106 are depicted as separate components, oftentimes their function is integrated together into one or two chips.
Coupled to memory controller 106 are multiple data channels (buses), including the depicted Channels 1–4 which are respectively connected to memory sockets 108a–d. Alternatively, memory controller 106 can use only two channels, such that Channel 1 is coupled to and supports memory sockets 108a–b, Channel 2 is coupled to and supports memory sockets 108c–d, and there are no Channels 3–4.
With reference now to FIG. 1b, multiple server blades 102a–d are utilized within a blade server chassis 110. Server blades 102a–d are connected to a midplane 112 (a backplane positioned in a center portion of the blade server chassis 110) via respective board slots 114a–d. As shown in FIG. 1b, spacing between server blades 102 is limited. Therefore, the memory sockets 108 are configured to orient memory modules 116 at an angle, in order to provide adequate clearance between boards that make up the server blades 102.
A typical memory module 116 is shown in FIG. 1c, which shows a Dual In-line Memory Module (DIMM) 118 having multiple Dynamic Random Access Memories (DRAMs) 120. DIMM 118 electrically couples with memory sockets 108 via single-edge pins 122, which are all on one edge of DIMM 118.
Although not shown, typically DIMM 118 is coupled in series with other DIMMs 118 on other memory sockets 108. Thus, each DIMM 118 must be able to pass-through data that is to be stored in another DIMM 118. As will be shown to be significant below, northbound data enters DIMM 118 on a first set of pins, northbound data exits DIMM 118 on a different second set of pins, southbound data enters DIMM 118 on a different third set of pins, and southbound data exits DIMM 118 on a different fourth set of pins, where the first, second, third and fourth sets of pins are all part of single-edge pins 122.
As can be seen in FIGS. 1a–c, the amount of memory that can be placed on a single server blade 102 is limited by space. That is, there is simply no physical room to add more memory.